package Class_Object;

public class Student {
    public String name;
    public int age;
    public int ID;
    public static String classRoom ;//静态的成员变量不属于对象,属于类
    public Student(){
        //重载
        //在构造方法里面调用其他构造方法,不能自己调用自己
        this("小黑",89);
    }
    public Student(String name,int age) {
        this.name = name;
        this.age = age;
        System.out.println("我是构造方法");
    }
    static {
        //静态代码块
        //一般用来初始化静态成员变量
        //一般在类加载被调用
        classRoom = "337";
        System.out.println("这个是静态代码块");
    }
    {
        //对普通成员变量进行初始化
        this.ID = 2022011;
        System.out.println("这个是构造代码块/实例代码块");//实例化的时候调用
    }
    public void eat() {
        System.out.println(this.name + "正在吃饭");
//alt +insert这个可以快速生成构造方法
    }

    public static void fuc(){//func这个静态方法直接通过类名就能调用,不依赖对象
        System.out.println("静态的方法");
//        System.out.println(this.name);//name的调用需要对象的引用来调用,依赖对象,所以会报错
    }
    //TODO toString

//    @Override
//    public String toString() {
//        return "Student{" +
//                "name='" + name + '\'' +
//                ", age=" + age +
//                ", ID=" + ID +
//                '}';
//    }

    public static void main(String[] args) {
        //静态先执行(只执行一次)
        //执行构造代码块
        //构造方法
        Student student = new Student("小白",19);
//        student.eat();
        System.out.println("==============");
        Student student1 = new Student("小黑",19);
        {
            System.out.println("我是普通代码块");
        }
        System.out.println(student1.toString());//打印对象内容
        System.out.println(student1);//打印对象内容
        System.out.println(student.toString());
    }

    }


